The relational and object-relational models for data of information technology systems are very powerful in conventional configurations of database management systems (“DBMS”). More particularly, relational databases store data in tables, wherein each table includes at least one column and all entries within each column are of a same type. Each row of a relational database table consists of at least one column. Relationships between rows are either defined (a.) implicitly by the presence of a field with the same content in the rows, e.g. a Customer_ID field in a Customer table and also in a Product Order table, or (b.) explicitly in a separate “join” table that, for example, has rows with a Customer_ID and a Product_Order_ID in them.
Database queries can be structure to enable retrieving representations of information (“data”). In object-oriented database systems (“OODBMS”) relationships between objects are expressed by object identifiers that specify an individual software object, and link attributes of the link formed when a first software object references an object identifier of a second software object.
Queries are generated and applied in a relational database using a structured query language (“SQL”). An SQL statement is a command that explicitly describes what data is to be retrieved from or stored in the relational database system as a result of the statement, but leaves up to each system the mechanisms and sequence of operations for producing the desired result. Several database management systems that accept SQL statements are commercially available at the time of this writing.
In a database management system (DBMS), data may be stored in one or more data containers. The term container is used to refer to any set of data that is processed as a set of one or more records, e.g., software objects (“objects”), each record being organized into one or more fields. In relational database systems, the containers are called “relations” or “tables,” the records are referred to as “rows,” and the fields are referred to as “columns,” and each table has a fixed number of columns. In an object-relational database a column can be associated with an object type that is made-up of several attributes.
The prior art includes methods of searching for data related to a particular row in a relational database that require join operations that will either search a specified table for a matching row or utilize a join table. Certain prior art join operations take advantage of B-Tree indices to avoid having to scan an entire target table. Yet these prior art techniques of join operation of and join table generation are computationally intensive.
Based on the foregoing, there is a clear need for techniques to improve the efficiency of performing queries with a relational database.
The past approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not to be considered prior art to the claims in this application merely due to the presence of these approaches in this background section.